A popular configuration for Message-oriented-Middleware (MoM) is to collocate a queue manager with each instance of a client or server. In this context, a client or a server could be a single message-consuming application but could equally be a platform that runs multiple different applications, some or all of which use the MoM; examples include IBM® CICS®, IMS™; WebSphere® Message Broker and WebSphere Application Server (WAS). (IBM, CICS, IMS and WebSphere are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both.)
Collocation of a queue manager with each client/server in this way is often chosen because it allows a sender to continue using the MoM even when a receiver's communication is temporarily unavailable; it may also be chosen as a way to provide greater MoM capacity, or for other reasons.
A potential problem with this collocation happens when the receiver (i.e., client or server) is inactive whilst its collocated queue manager is active. This can happen, for example, during start-up when the queue manager start-up completes much more quickly than the receiver start-up, or if the receiver suffers a software failure which does not causes a queue manager outage. In this situation the MoM, typically continues to deliver messages to the queue manager while the receiver is inactive. This is sometimes undesirable, especially where the receivers are servers that are clustered so that the preferred behaviour is for the MoM to deliver messages to queue managers collocated, with active receivers and not to queue managers collocated with inactive receivers.